package prova;

import java.util.ArrayList;
import java.util.Iterator;

public class Mappa {
	
	public static Punto calcolaCentroMappa ( ArrayList<ParticellaCatastale> particelleCambiamento){
		Punto punto = new Punto();
		double laMax = 0;
		double laMin = 0;
		double loMax = 0;
		double loMin = 0;
		int i=0;
		
		Iterator<ParticellaCatastale> iPart = particelleCambiamento.iterator();
		while (iPart.hasNext()){
			ParticellaCatastale pc = iPart.next();
			if (i == 0){
				laMax = pc.getArrayPunti().get(0).getY();
				laMin = laMax;
				loMax = pc.getArrayPunti().get(0).getX();
				loMin = loMax;
			}
			else {
				if (laMax < pc.getArrayPunti().get(0).getY()){
					laMax = pc.getArrayPunti().get(0).getY();					
				}
				
				if (laMin > pc.getArrayPunti().get(0).getY()){
					laMin = pc.getArrayPunti().get(0).getY();					
				}
				
				if (loMax < pc.getArrayPunti().get(0).getX()){
					loMax = pc.getArrayPunti().get(0).getX();					
				}
				
				if (loMin > pc.getArrayPunti().get(0).getX()){
					loMin = pc.getArrayPunti().get(0).getX();					
				}			
			}i++;
						
		}
		if (i < 2){
			punto.setX(loMax);
			punto.setY(laMax);			
		} else {
			punto.setX(calcolaMedia(loMin, loMax));
			punto.setY(calcolaMedia(laMin, laMax));
			} 
		return punto;
	}
	
	public static String getCentroLo (){
		String lo = null;
		String loFull = null;
		Punto punto = new Punto();
		ParticelleConCambiamento pcc = new ParticelleConCambiamento();			
		
		ArrayList<ParticellaCatastale> particelleCambiamento = pcc.getParticelleCambiamento();
		punto = calcolaCentroMappa(particelleCambiamento);
		loFull = Double.toString(punto.getY());
		lo = loFull.substring(0, 9);		
		
		return lo;		
	}
	
	public static String getCentroLa (){
		String la = null;
		String laFull = null;
		Punto punto = new Punto();
		ParticelleConCambiamento pcc = new ParticelleConCambiamento();
			
		
		ArrayList<ParticellaCatastale> particelleCambiamento = pcc.getParticelleCambiamento();
		punto = calcolaCentroMappa(particelleCambiamento);
		laFull = Double.toString(punto.getX());
		la = laFull.substring(0, 9);
		
		return la;		
	}
	
	public static double calcolaMedia (double primo , double secondo){
		double media=0;
		media = (primo + secondo)/2;
		return media;
		}

}
